home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Arsenal Files 6
/
The Arsenal Files 6 (Arsenal Computer).ISO
/
business
/
hap101.zip
/
COMPLEX.HAP
< prev
next >
Wrap
Text File
|
1996-01-18
|
13KB
|
439 lines
rem
rem ////////////////////////////////////////////////////////////////////////
rem // Define Events
rem //
rem // These are events that are triggered by certain things such as a
rem // time of day, X10 code received, etc.
rem ////////////////////////////////////////////////////////////////////////
define event MOVIE { X10Code E9-ON }
define event MOVIEEND { X10Code E9-OFF }
define event BSLEEP { X10Code E11-ON }
define event MOOD { X10Code E12-ON }
define event DINNER { X10Code E13-ON }
define event DINNEREND { X10Code E13-OFF }
define event WAKEUP { Time 07:30-.MTWTF. }
define event MINUTE { Every Minute }
define event FIRST { Every First }
rem ////////////////////////////////////////////////////////////////////////
rem // Define Modules
rem //
rem // Module definitions make it easier to reference a certain unit in
rem // your house. Instead of referencing 'E8', you can reference
rem // 'CEILINGFAN'
rem //
rem // In my house, the following modules are defined:
rem ////////////////////////////////////////////////////////////////////////
define module CEILINGFAN type X10 { LampModule E8 }
define module MBLIGHT type X10 { LampModule E16 }
define module LRLIGHT type X10 { LampModule E1 }
define module KTLIGHT1 type X10 { LampModule E2 }
define module DRLIGHT type X10 { LampModule E3 }
define module HLLIGHT1 type X10 { LampModule E4 }
define module HLLIGHT2 type X10 { LampModule E5 }
rem // MBLIGHT = MasterBedroom Light, LRLIGHT = Livingroom, KTLIGHT=Kitchen,
rem // HLLIGHT = HallLight, DRLIGHT = Dining Room.
rem //////////////////////////////////////////////////////////////////
rem // Start BASIC portion of code
rem //////////////////////////////////////////////////////////////////
start
rem -- The following flags are set to keep track of various things, such
rem -- as the on/off status of the television, etc.
vcrmode = 0
vcron = 0
tvon = 0
ampon = 0
movieflag = 0
dinnerflag = 0
gosub PrintHeaders:
rem **********************************************************************
rem * Main Loop *
rem **********************************************************************
MainLoop:
SYS_CASESENS = 0
event_check
event = event_avail(0)
key$ = inkey$
if left$(key$,1) = "q" then goto ProgramEnd:
if left$(key$,1) = "d" then gosub DOSShell:
if event = -1 then goto MainLoop:
if event = MINUTE then goto MainLoop2:
beep
eventcount = eventcount + 1
locate 4,35 : color 7,0 : print eventcount;
locate 3,35 : color 7,0 : print event_last$;" "
locate 6,35 : color 7,0 : print "Processing Event: ";event_last$ ; " "
MainLoop2:
if event = FIRST then gosub First:
if event = WAKEUP then gosub Wakeup:
if event = MINUTE then gosub Minute:
if event = MOVIE then gosub Movie:
if event = MOVIEEND then gosub MovieEnd:
if event = BSLEEP then gosub bSleep:
if event = MOOD then gosub Mood:
if event = DINNER then gosub Dinner:
if event = DINNEREND then gosub DinnerEnd:
event_reset event
locate 6,35 : color 7,0 : print "Idle "
goto MainLoop:
rem *************************************************************************
rem * Print Screen Headers *
rem *************************************************************************
PrintHeaders:
color 3,0
locate 1,60 : print"Time: ";
locate 2,60 : print"Date: ";
locate 3,10 : print" Last Event Processed: "
locate 4,10 : print"Total Events Processed: "
locate 6,10 : print" Current Status: "
locate 6,35 : color 7,0 : print"Idle"
locate 25,30 : color 2,0 : print" HAP version ";SYS_VERSION$;
return
rem *************************************************************************
rem * 'First' event processor *
rem *************************************************************************
First:
rem -- Your soundcard may have a different program to play wave files.
shell "playfile wav\funcnorp.wav"
return
rem *************************************************************************
rem * every Minute event processor *
rem *************************************************************************
Minute:
locate 1,66
color 7,0
print left$(time$,5);
locate 2,66
print date$
return
rem *************************************************************************
rem * WAKEUP event processor *
rem * Cycles the masterbedroom light and leaves it on. Much nicer than *
rem * an alarm clock! *
rem *************************************************************************
Wakeup:
sendcmd MBLIGHT, "ON"
sendmcmd MBLIGHT, "DIM", 10
sendmcmd MBLIGHT, "BRI", 10
return
rem *************************************************************************
rem * Sleep event processor *
rem * Turns all units on 'E' housecode off. *
rem *************************************************************************
bSleep:
sendfunc "e", "AUOFF"
rem -- Choose your favorite .WAV file!
shell "\proaudio\playfile wav\dream.wav"
return
rem *************************************************************************
rem * MOVIE event processor *
rem * This is an example of a routine that can act differently depending *
rem * on its status. If the movie is playing and the event is triggered *
rem * again, the movie is paused. If the movie is paused and the event *
rem * is triggered, the movie is resumed. *
rem *************************************************************************
Movie:
if movieflag = 2 then goto MovieResume:
if movieflag = 1 then goto MoviePause:
movieflag = 1
vcron = 1
gosub TVOn:
gosub TVVol0:
IRSend "TV VOLUP VOLUP VOLUP VOLUP VOLUP VOLUP VOLUP VOLUP VOLUP VOLUP"
IRSend "VCR PLAY"
gosub Mood:
return
MoviePause:
IRSend "VCR PAUSE"
movieflag = 2
sendunit LRLIGHT
sendunit HLLIGHT1
sendunit HLLIGHT2
sendmfunc "e", "BRI", 2
return
MovieResume:
movieflag = 1
sendunit LRLIGHT
sendunit HLLIGHT1
sendunit HLLIGHT2
sendmfunc "e", "DIM", 4
IRSend "VCR PLAY"
return
rem *************************************************************************
rem * MOVIEEND event processor *
rem *************************************************************************
MovieEnd:
IRSend "VCR STOP REW"
gosub VCROff:
gosub TVOff:
movieflag = 0
sendunit HLLIGHT1
sendunit HLLIGHT2
sendunit LRLIGHT
sendmfunc "e", "BRI", 7
return
rem *************************************************************************
rem * DINNER event processor *
rem *************************************************************************
Dinner:
if dinnerflag = 2 then goto DinnerResume:
if dinnerflag = 1 then goto DinnerPause:
dinnerflag = 1
sendfunc "e", "ALOFF"
sendunit HLLIGHT1
sendunit HLLIGHT2
sendunit LRLIGHT
sendunit DRLIGHT
sendfunc "e", "ON"
sendunit LRLIGHT
sendunit HLLIGHT1
sendunit HLLIGHT2
sendmfunc "e", "DIM", 3
sendunit HLLIGHT1
sendunit HLLIGHT2
sendmfunc "e", "DIM", 10
return
DinnerPause:
dinnerflag = 2
sendunit LRLIGHT
sendunit HLLIGHT1
sendunit HLLIGHT2
sendmfunc "e", "BRI", 2
return
DinnerResume:
dinnerflag = 1
sendunit LRLIGHT
sendunit HLLIGHT1
sendunit HLLIGHT2
sendmfunc "e", "DIM", 4
return
rem *************************************************************************
rem * DINNEREND event processor *
rem *************************************************************************
DinnerEnd:
dinnerflag = 0
sendunit HLLIGHT1
sendunit HLLIGHT2
sendunit LRLIGHT
sendunit DRLIGHT
sendmfunc "e", "BRI", 7
return
rem *************************************************************************
rem * MOOD event processor *
rem *************************************************************************
Mood:
sendfunc "e", "ALOFF"
sendunit HLLIGHT1
sendunit HLLIGHT2
sendunit LRLIGHT
sendfunc "e", "ON"
sendunit LRLIGHT
sendunit HLLIGHT1
sendunit HLLIGHT2
sendmfunc "e", "DIM", 4
sendunit HLLIGHT1
sendunit HLLIGHT2
sendmfunc "e", "DIM", 10
return
rem *************************************************************************
rem * VCROn *
rem *************************************************************************
VCROn:
if vcron = 1 then return
IRSend "VCR POWER"
vcron = 1
return
rem *************************************************************************
rem * VCROff *
rem *************************************************************************
VCROff:
if vcron = 0 then return
IRSend "VCR POWER"
vcron = 0
return
rem *************************************************************************
rem * TVOn *
rem *************************************************************************
TVOn:
if tvon = 1 then return
IRSend "TV POWER"
tvon = 1
return
rem *************************************************************************
rem * TVOff *
rem *************************************************************************
TVOff:
if tvon = 0 then return
IRSend "TV POWER"
tvon = 0
return
rem *************************************************************************
rem * TVVol0 *
rem *************************************************************************
TVVol0:
IRSend "TV VOLDN VOLDN VOLDN VOLDN VOLDN VOLDN VOLDN VOLDN VOLDN VOLDN"
IRSend "VOLDN VOLDN VOLDN VOLDN VOLDN VOLDN VOLDN VOLDN VOLDN VOLDN VOLDN"
return
rem *************************************************************************
rem * AMPOn *
rem *************************************************************************
AMPOn:
if ampon = 1 then return
IRSend "AMP POWER"
ampon = 1
return
rem *************************************************************************
rem * AMPOff *
rem *************************************************************************
AMPOff:
if ampon = 0 then return
IRSend "AMP POWER"
ampon = 0
return
rem *************************************************************************
rem * AMPVol0 *
rem *************************************************************************
AMPVol0:
IRSend "AMP VOLDN VOLDN VOLDN VOLDN VOLDN VOLDN VOLDN VOLDN VOLDN VOLDN"
IRSend "VOLDN VOLDN VOLDN VOLDN VOLDN VOLDN VOLDN VOLDN VOLDN VOLDN VOLDN"
return
rem *************************************************************************
rem * DOSSHELL event processor *
rem *************************************************************************
DOSShell:
event_reset DOSShell
print"Shelling to DOS...type EXIT and press Enter to return"
sleep 2
shell""
return
rem *************************************************************************
rem * Program End *
rem *************************************************************************
ProgramEnd:
shell "playfile wav\unstable.wav"
locate 10,1 : print"Ending at users request!"
sleep 1
end